const { UPLOAD_PATH } = require("../config/path.js");
const { showAvatarByUserId } = require("../server/fileServer.js");
const userServer = require("../server/userServer.js");
const fs = require("fs");

class UserController {
    // create 实例方法  用户登录后实际的处理逻辑在这里
    async create(ctx, next) {
        // 获取用户传递的参数
        const userInfo = ctx.request.body;

        // 将userInfo 存储到数据库  注意是异步操作
        const result = await userServer.create(userInfo);

        // 查看存储结果 将结果告知前端
        ctx.body = {
            message: "注册用户成功",
            code: 200,
            data: result,
        };
    }

    // 查用用户头像
    async showAvatar(ctx, next) {
        // 用户客户端传递的userid 这里不使用登录的状态 而是get请求的params传参
        const { userId } = ctx.params;

        // 获取userId对应的头像信息
        const avatarInfo = await showAvatarByUserId(userId);

        // 读取文件
        const { filename, mimetype } = avatarInfo;
        ctx.type = mimetype;
        ctx.body = fs.createReadStream(`${UPLOAD_PATH}/${filename}`);
    }
}

module.exports = new UserController();
